import UrlEncode from './UrlEncode';
import UrlDecode from './UrlDecode';
import HtmlEntity from './HtmlEntity';
import TextEncoding from './TextEncoding';
import QuotedPrintable from './QuotedPrintable';
import Punycode from './Punycode';
import Bin2Hex from './Bin2Hex';
import Base64 from './Base64';
import Base85 from './Base85';
import Checksum from './Checksum';

export function createTextCoders() {
  return [
    new TextEncoding.Encoder(),
    new UrlEncode(),
    new UrlDecode(),
    new HtmlEntity.Encoder(),
    new HtmlEntity.Decoder(),
    new QuotedPrintable.Decoder(),
    new Punycode.Encoder(),
    new Punycode.Decoder(),
    new Bin2Hex.Decoder(),
    new Base64.Decoder(),
    new Base85.Decoder(),
  ];
}

export function createDataCoders() {
  return [
    new TextEncoding.Decoder(),
    new QuotedPrintable.Encoder(),
    new Bin2Hex.Encoder(),
    new Base64.Encoder(),
    new Base85.Encoder(),
    new Checksum(),
  ];
}
